#region History

/* --------------------------------------------------------------------------------
 * Client Name: Bd Market Ltd.
 * Project Name: BdMarket
 * Module: App.Web.ViewModels 
 * Name: Contact.cs
 * Purpose: ViewModel class for Contact
 *                   
 * Author: Md. Hassanur Rahman
 * Language: C# SDK Version 4.0
 * --------------------------------------------------------------------------------
 * Change History:
 * Version: 1.0    MHR  01/21/2012
 * Description: Initial Development
 * -------------------------------------------------------------------------------- */

#endregion

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;


namespace App.Web.ViewModels
{
    [Serializable]
	public class ContactViewModel : BaseViewModel
	{
        /// <summary>
        /// Gets or sets the ID
        /// </summary>
        public int ID { get; set; }

        [Required(ErrorMessage = "Please Enter a First Name")]
        [StringLength(50, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "First Name")]
        public String FirstName { get; set; }

        [Required(ErrorMessage = "Please Enter a Last Name")]
        [StringLength(50, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Last Name")]
        public String LastName { get; set; }

        [Required(ErrorMessage = "Please Select a Gender")]
        [StringLength(1, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Gender")]
        public String Gender { get; set; }

        [StringLength(100, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Personal Email")]
        [RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Please Enter a valid Email address")]
        public String EmailPersonal { get; set; }

        [StringLength(100, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Office Email")]
        [RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Please Enter a valid Email address")]
        public String EmailOffice { get; set; }

        [StringLength(15, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Phone Home")]
        public String PhoneHome { get; set; }

        [StringLength(15, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Phone Mobile")]
        public String PhoneMobile { get; set; }

        [StringLength(15, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Phone Office")]
        public String PhoneOffice { get; set; }

        [StringLength(1, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Prefered Phone")]
        public String PreferedPhone { get; set; }

        [StringLength(200, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Address1")]
        public String Address1 { get; set; }

        [StringLength(200, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Address2")]
        public String Address2 { get; set; }

        [Display(Name = "Date Of Birth")]
        [DataType(DataType.Date)]
        public String DateOfBirth { get; set; }

        [Display(Name = "Religion")]        
        public int ReligionID { get; set; }

        [Required(ErrorMessage = "Please Choose Is Active?")]
        [Display(Name = "Is Active?")]
        public String IsActive { get; set; }

        [Required(ErrorMessage = "Please Choose Is Deleted?")]
        [Display(Name = "Is Deleted")]
        public String IsDeleted { get; set; }

        [StringLength(100, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Father's Name")]
        public String FatherName { get; set; }

        [StringLength(100, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Mother's Name")]
        public String MotherName { get; set; }

        [StringLength(100, ErrorMessage = "The {0} can be maximum {1} characters long.")]
        [Display(Name = "Spouse")]
        public String HusbandName { get; set; }

        [Required(ErrorMessage = "Please Select a Company")]
        [Range(1, int.MaxValue, ErrorMessage="Please Select a Company")]
        [Display(Name = "Company")]
        public int CompanyID { get; set; }

        public UserViewModel User { get; set; }
	}
}

